package com.itxiuyixiu.entity.mapper;

import com.itxiuyixiu.entity.model.Organization;
import com.itxiuyixiu.entity.model.Teacher;

import java.util.List;
import java.util.Optional;

/**
 * @author 黄磊
 * @date 2020/5/2
 */
public interface OrganizationReaderMapper {
    /**
     * 根据志愿者组织id查找
     *
     * @param organizationId 志愿者组织id
     * @return 志愿者组织信息
     */
    Optional<Organization> findOrganizationByOrganizationId(Integer organizationId);

    /**
     * 根据管理员id查找
     *
     * @param adminId 管理员id
     * @return 志愿者组织信息
     */
    Optional<Organization> findOrganizationByAdminId(Integer adminId);

    /**
     * 根据管理员的用户名查找
     *
     * @param username 用户名
     * @return 志愿者组织信息
     */
    Optional<Organization> findOrganizationByAdminUsername(String username);

    /**
     * 查询所有志愿者组织信息
     *
     * @return 所有志愿者组织信息
     */
    List<Organization> findAllOrganization();

    /**
     * 查询某一志愿者组织信息与其旗下的志愿者项目信息
     *
     * @param organizationId 志愿者组织id
     * @return 志愿者组织信息与其旗下的志愿者项目信息
     */
    Optional<Organization> findOrganizationWithProjectByOrganizationId(int organizationId);

    /**
     * 查询某一志愿者组织信息与其旗下的志愿者活动信息
     *
     * @param organizationId 志愿者组织id
     * @return 所有志愿者组织信息与其旗下的志愿者活动信息
     */
    Optional<Organization> findOrganizationWithActivityByOrganizationId(int organizationId);
}
